// 全局变量的引用
var _app;
//用户信息是否加载完毕
var _finished = false;
var _user;
var _prepareBackFun;

function init(value) {
  if (!_finished) {
    _app = value;
    _user = _app.user;
    initData();
  }
}

function initData() {
  //用户信息初始化
  _user.init(_app);
  _app.g = {
    //用户信息
    userInfo: null,
    //收货地址
    address: {},
    //发票信息
    invoice: {},
    //初始化标志
    initFlag: false,
    //场景值详细信息
    options: {},
    //首页和砍价首页的顶导图片
    topImg: {},
    //常量
    const: {},
    //非登录状态下router记录
    lastRouter: ""
  }
  //事件类初始化
  _app.eventData.init(_app);
}

function prepareBaseInfo(backFun) {
  _prepareBackFun = backFun;
  //检测基础数据信息是否已经获取
  _user.checkBaseInfo(prepareBseInfoBack);
}

function prepareBseInfoBack() {
  _prepareBackFun();
}

//是否正在加载用户信息
function isLoadingUserInfo() {
  return _user.isLoading();
}

/**
 * 设置跳转登录前的页面
 */
function setLastRouter(value) {
  if (!value || value == "") {
    let _cp = getCurrentPages();
    if (_cp.length > 0) {
      if (_cp[_cp.length - 1].options) {
        let _url = _cp[_cp.length - 1].route + "?";
        for (var i in _cp[_cp.length - 1].options) {
          _url += i + "=" + _cp[_cp.length - 1].options[i] + "&";
        }
        _app.g.lastRouter = "/" + _url.slice(0, _url.length - 1);
      } else {
        _app.g.lastRouter = "/" + _cp[_cp.length - 1].route;
      }
    } else {
      _app.g.lastRouter = "/pages/index/index";
    }
  } else {
    _app.g.lastRouter = "/" + value;
  }
}

/**
 * 获取跳转登录前的页面
 */
function getLastRouter() {
  return _app.g.lastRouter;
}

/**
 * 清空跳转登录前的页面
 */
function cleanLastRouter() {
  _app.g.lastRouter = "";
}

module.exports = {
  init: init,
  prepareBaseInfo: prepareBaseInfo,
  isLoadingUserInfo: isLoadingUserInfo,
  cleanLastRouter: cleanLastRouter,
  getLastRouter: getLastRouter,
  setLastRouter: setLastRouter
}